bitkeeper revision 1.1159.170.28 (4199f979RH9YDYvR9XUZksaNnSlnLQ)
authorakw27@labyrinth.cl.cam.ac.uk <akw27@labyrinth.cl.cam.ac.uk>
Tue, 16 Nov 2004 12:58:33 +0000 (12:58 +0000)
committerakw27@labyrinth.cl.cam.ac.uk <akw27@labyrinth.cl.cam.ac.uk>
Tue, 16 Nov 2004 12:58:33 +0000 (12:58 +0000)
Fixes to xend for backends in domains other than dom0.

tools/python/xen/xend/XendDomainInfo.py
tools/python/xen/xend/server/blkif.py
tools/python/xen/xend/server/netif.py

index 70cd68db1cc08e9e0f273f66e3db0226799d4249..963a0c8ea8a877f2e50a1537ecf9d8df1b9ede77 100644 (file)
@@ -971,8 +971,8 @@ class XendDomainInfo:
 
         @return: deferred - calls callback with vm
         """
-        d = self.create_blkif()
-        d.addCallback(lambda x: self.create_devices())
+        d = self.create_devices()
+        d.addCallback(lambda x: self.create_blkif())
         d.addCallback(self._configure)
         return d
 
@@ -994,9 +994,12 @@ class XendDomainInfo:
 
         @return: deferred
         """
-        ctrl = xend.blkif_create(self.dom, recreate=self.recreate)
-        back = ctrl.getBackendInterface(0)
-        return back.connect(recreate=self.recreate)
+        if (self.get_devices("vbd") == None):
+            ctrl = xend.blkif_create(self.dom, recreate=self.recreate)
+            back = ctrl.getBackendInterface(0)
+            return back.connect(recreate=self.recreate)
+        else:
+            return None
     
     def dom_construct(self, dom, config):
         """Construct a vm for an existing domain.
index 1e06c55345dc898389475a43e49f4940edfb4838..c17c0c568e10ac551e454bc0995f10944285bee1 100755 (executable)
@@ -187,7 +187,7 @@ class BlkifBackendInterface(controller.BackendInterface):
         self.writeRequest(msg, response=response)
 
     def connectInterface(self, val):
-        self.evtchn = channel.eventChannel(0, self.controller.dom)
+        self.evtchn = channel.eventChannel(self.dom, self.controller.dom)
         log.debug("Connecting blkif to event channel %s ports=%d:%d",
                   str(self), self.evtchn['port1'], self.evtchn['port2'])
         msg = packMsg('blkif_be_connect_t',
index a0466b0e4cdf89af4b21f0ada6e839eeb0b14d68..9732702c530185f4dbf98fddc55abb29a3538f8c 100755 (executable)
@@ -307,7 +307,7 @@ class NetDev(controller.SplitDev):
     
     def recv_fe_interface_connect(self, val, req):
         if not req: return
-        self.evtchn = channel.eventChannel(0, self.controller.dom)
+        self.evtchn = channel.eventChannel(self.dom, self.controller.dom)
         msg = packMsg('netif_be_connect_t',
                       { 'domid'          : self.controller.dom,
                         'netif_handle'   : self.vif,